void main() {
  // 列表相当于js中的数组
  // 1. 定义数字列表
  // List numbers = [1, 2, 3, 4, 5];
  // print(numbers);

  // 2. 定义分类列表
  // List categories = ['居家', '美食', '服饰'];
  // print(categories);

  // 3. 存储任意类型的数据
  // List list = [
  //   1,
  //   '2',
  //   true,
  //   3.0,
  //   {'a': 1, 'b': 2}
  // ];
  // print(list);

  // 4. 使用列表：查改增删
  List categories = ['居家', '美食', '服饰'];
  // 4.1 查询列表长度
  // print(categories.length);

  // 4.2 查询指定的元素
  // print(categories[1]);
  // print(categories.indexOf('美食'));
  // print(categories.first);
  // print(categories.last);
  // print(categories.firstOrNull);
  // print(categories.lastOrNull);

  // 4.3 修改：列表[索引] = 新值
  // categories[1] = '母婴';
  // print(categories);

  // 4.4 新增：列表.add(新元素)、列表.addAll(新列表)
  // categories.add('母婴');
  // print(categories);

  // 4.5 指定位置添加：列表.insert(索引, 内容');
  // categories.insert(1, '母婴');
  // print(categories);

  // 4.6 删除：使用元素删除、使用索引删除
  // categories.remove('美食');
  // categories.removeAt(1);
  // categories.removeRange(1, 2);
  // print(categories);

  // 4.7 遍历列表：读取出列表中每一个元素
  // 方式1: for (var item in 列表) { }
  // for (var item in categories) {
  //   print(item);
  // }

  // 方式二: for (int i = 0; i < 列表.length; i++) { }
  // for (int i = 0; i < categories.length; i++) {
  //   print(categories[i]);
  // }

  // 方式三: forEach()
  categories.forEach((item) {
    print("$item");
  });
}
